package com.billard.service;

import com.billard.dto.ReservationDTO;
import com.billard.entity.Reservation;

import java.util.List;
import java.util.Map;

/**
 * 预约服务接口
 */
public interface ReservationService {

    /**
     * 创建预约
     */
    void createReservation(ReservationDTO reservationDTO);

    /**
     * 确认预约
     */
    void confirmReservation(Long reservationId);

    /**
     * 取消预约
     */
    void cancelReservation(Long reservationId);

    /**
     * 查询所有预约
     */
    List<Reservation> getAllReservations();

    /**
     * 根据状态查询预约
     */
    List<Reservation> getReservationsByStatus(Integer status);

    /**
     * 根据球台ID查询预约
     */
    List<Reservation> getReservationsByTableId(Long tableId);

    /**
     * 删除预约
     */
    void deleteReservation(Long id);

    /**
     * 预约统计
     */
    Map<String, Object> getReservationStatistics(String startDate, String endDate);
}
